package fr.univ.lr.icone.gui.event;

import java.awt.Point;

/**
 * A interface that describes an event structure
 * 
 * @author Elian ORIOU
 * 
 */

public interface IEvent {

	/**
	 * Returns the event type (could be position changes, opinion changes, agent
	 * state changes)
	 * 
	 * @return the event type
	 */

	EventType getEventType();

	/**
	 * Returns the concerned agent's id
	 * 
	 * @return the concerned agent's id
	 */

	int getAgentID();

	/**
	 * Returns the opinion of the agent, if it has changed
	 * 
	 * @return the agent's opinion
	 */

	int getOpinion();
	
	/**
	 * Returns the confiance of the agent, if it has changed
	 * 
	 * @return the agent's confiance
	 */

	int getConfiance();
	/**
	 * Returns the position of the agent, if it has changed
	 * 
	 * @return the agent's position
	 */
	
	Point getPosition();

	/**
	 * Returns the old position of the agent, if it has changed
	 * 
	 * @return the old agent's position
	 */

	Point getOldPosition();

}
